#ifndef __GLF_TIMER_H_INCLUDED__
#define __GLF_TIMER_H_INCLUDED__

#include <glf/config.h>
#include <glf/core/primitives.h>

namespace glf {
	int64 GetMilliseconds();
	int64 GetMicroseconds();
	int64 GetNanoseconds();
	int64 GetTicks();
	int64 GetTicksPerSecond();

	int64 GetRunningTimeMs();
	int64 GetRunningTimeUs();
	int64 GetRunningTimeNs();
	void OffsetTimer(int64 timeMillis);

	struct Calendar {
		int year;
		int day;
		int hour;
		int minute;
		int second;
		int millisecond;

		int month;
		int monthDay;
		int weekDay;
	};

	void GetCalendar(Calendar& calendar);
	void GetCalendar(int64 ticks, Calendar& calendar);
} //namespace glf

/*
enum Month {
			January, February, March, April,
			May, June, July, August,
			September, October, November, December,
		} month;
enum WeekDay {
			Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday,
		} 
*/

#endif
